{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "646efde1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最近 2 年上涨月数 / 总月数：12 / 24 ≈ 50.00%\n",
      "最近 3 年上涨月数 / 总月数：15 / 36 ≈ 41.67%\n",
      "最近 5 年上涨月数 / 总月数：30 / 60 ≈ 50.00%\n",
      "最近 8 年上涨月数 / 总月数：46 / 96 ≈ 47.92%\n",
      "最近 10 年上涨月数 / 总月数：58 / 120 ≈ 48.33%\n",
      "最近 13 年上涨月数 / 总月数：74 / 156 ≈ 47.44%\n"
     ]
    },
    {
     "data": {
      "image/png": "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a/sBAwbINE39+OOPOu200/x+nhEjRqh58+a666675HK5NHbsWF1yySV66qmnNHz4cE2cOFFXXnlllfsoXi01efJkTZgwQeHh4erSpYuefPJJDR48WHl5eZU+tjgo+e6773TGGWdIknbv3m3dVxzI3HzzzWrYsKEkKT093Xp8fHy8Tj/9dE2ZMkWGYSgiIkK7du3Szp07dc0112j+/Plq1qyZpKILsiclJalx48ZV9qd4VVdl+vXrV+X9ZS1atEibNm2ybrvdbuXl5alfv37q0aOHpKK3zaWkpOiFF17QSSedpCuvvNK6MHmTJk189jd9+nRdffXV5dqlomPx7LPPavny5XK73XrwwQc1adIkHX/88froo48UExOjvn37KisrSz///LNuvPFGn8d/8skn+vjjj3XppZeqffv26t+/vwoLC/XUU09pxYoV2rZtmzZt2qS2bdtq+fLl6t+/v7KysmoUhAIAAPvxmxoAAPjtxBNP1DnnnKMZM2YoLS1Nl1xyiRWWFF+ku1u3btb2hmEoKSlJGzdurFEo9cgjj6h58+bWW8SeeOIJdenSRf369dPYsWP14IMPVrsPj8ejgoICrV+/Xi6XSy6XS263W3v27NHWrVvl8Xj0119/VbmP008/3VopNXfuXN19992SZF20e+bMmdbb90pfsLthw4Z67rnnJElr1qyxrjtVWFio/Px8XXDBBfryyy/VqlUra7VW2VU+ZW3evFlt2rSp8L5p06bp888/r3pAypg9e7ZPaFNYWKiCggLNmDHDCqXuvvtuXX755RowYIB27Nghr9eryZMn69FHHy23vzvuuMPnWlJltW3bVm3bttWjjz4ql8ul2267TVLRW/PS09O1ZMkSffbZZ/J6vTr//POtx+Xm5mr69OmaMWOGXn/9dT333HOKjY3VmjVrdOmll1ohWHEouHPnTjVr1qzcdcIAAEDdQygFAABq5I477tCgQYNkmqZWrlxptefm5srpdJa7dlJMTIz27t1bo+fo3bu39f2yZcs0depU7du3TwMHDtRrr72m2NhYjRkzRieddFKFj8/Ly1NhYaG2bdumsWPHKjIy0rq20D/+8Q+Zpim3262EhASft/aVtWjRIp+39rVq1UqS/Lp4e25uriIjI7V3717Fx8dLkpo2barPP/9cZ599tg4cOKBWrVopOztbMTExMgxDOTk5ioiI8LkOUmVvFTxSH374oRWoVaZHjx768ccftWjRIsXGxqqgoMC6oHpeXp7+/ve/65dfftH27duVmprq89gnnnii3NsW//rrL91xxx26+uqrFRkZKalohVbxuA4fPlzbt2/3WTW2c+dOrVy5UsuWLVPjxo3VokULnXLKKZoyZYoWLFigG2+8Ucccc4x++eUX9ezZUzt37qx2VRkAAKgbCKUAAECNnHXWWerUqZPi4+OtFTWSyoUpxQzDUG5ubo2eY9OmTXr77bf10ksvadu2bbr22mu1YMECJSQk6Msvv9T06dN18sknq3nz5jrttNN0/PHHa8yYMerYsaMkWRcpP/PMM5WTk+NzAexiYWFhiomJ0dy5cyutY8iQIRWulCr+BMJXX31V33//vSSV62PTpk19nrfsdatOOOGEcvVI0vLly31CuYMHD0qSMjIyrO/LquqtiEcqLi5Oo0aNkiSlpaXJ4XDo4MGDMk1TDRo0kNPpVFhYmFavXq39+/fr7LPPVkFBgbWarNjKlSvVr18//fDDD+rSpYvVnpqaqqZNm1q3jznmGJ/HtWzZUo8++qgiIyP1+OOP69NPP9Udd9yhjIwMtWrVSldddZVat26tr776Sn//+9+1fv16n/0DAIC6i1AKAADUWEJCgrX6p1izZs1UUFCgPXv2WNdLkooCouLVNdVZtmyZxowZo9TUVHXv3l1DhgzR6NGjFRsbq6ysLGVlZSk5OVnPPfectm7dqiVLluiHH37QSy+9pHvuucfaz+bNm2UYhpo3b67PPvtMQ4YMKfdcffr00TfffFOuPS8vTwcPHlR+fr7cbrcVBOXk5Mg0TW3fvt0KpT7//HPrgtxlVzRt2rRJEREReumll7Ro0SItWLBA3333ne6//3698sorVhDz9ddfa9KkSVq+fLkKCgrKXVuq+PlPPPHEKseupteUqolNmzapXbt22r9/v+69917de++9Gj9+vObMmaOLLrpIJ598stq0aaMHH3zQettiWf/617/UuXNnderUyWrbu3ev1q9fr40bN2r//v0VXo9q06ZNOvHEExUREaHc3Fw1aNBAJ5xwgtxutxo0aKA9e/boxx9/1AUXXKCCggJ9++23mjRpUsDGAgAA1B5CKQAAUCs6duyoiIgIffPNNxoxYoQkKTMzU3/88Ydatmzp1z769Omju+66S+eee662bNmivn376pFHHql0+1GjRumjjz6S1+v1+fS5NWvWqFWrVgoPD1dUVJScTqcVJEnS/fffX2EgJUlfffWVhg0bpvDwcDkcDp/rOBUUFKhNmzZ68803JRV94lxxAFf6mlKSrOsr5efnq1WrVtbFzyMjI3XWWWfp3Xff1UknnSTTNBUXF1fphc7Xrl2r+Ph47d+/v9JP2Duca0r5Kz8/Xz179tQ333yjjRs3SpL1lsjSevfurQ0bNmjv3r0+K58k6aefftKHH36o7777zqcP//vf/9SpUye1aNFCjzzySIXXquratas8Ho8++OAD3XDDDVbYN3bsWDkcDrlcLp122mlq1KiR7r33Xq1Zs0YDBgwIwEgAAIDaVvufHQwAAI5KkZGRGjJkiB5//HErAJo1a5ZM09RZZ53l1z6cTqeuu+46HXvssdYKpMzMTJmmWe5rzJgx1qfklQ1rli5dqp49e0pSubeRVeecc85RXl6ePvvsM7377rs6ePCgDh48qCeeeEIHDx6U2+3W5s2bdcwxx/isCKvMX3/9Zb0lLT4+Xp9++qnPBeKzsrIUFRUlt9ttfapfaYsWLVKfPn0qDaQC7YsvvlB4eLg6d+7s0172rZrt2rXTcccdp1deecWn3e1267rrrtOVV16pU0891WpPSUnRgw8+qHvvvVfTpk3TjBkz9P7771dYg2mauu+++9S4cWPNmzdPH3/8sRYsWKA777xTUtFbI2+55RY98sgjGjZsmN8hKAAACC5CKQAAUGsefPBBrV69Wr1799Yll1yif/7zn7rpppvKrZzxhz+fnlbRNayys7O1aNEi6yLeOTk58ng8MgzD+po6dWqV17nKz8/XuHHjNHv2bHm9XmVkZOjRRx/V6NGj5Xa7NW/ePA0dOtSvfqSmpmr69OnWczdo0EBPPvmkmjRpIsMwNHr0aC1btkwul0vPPvusz2PXrFmjzz//XFdddVWVz+HPhdcP17vvvqvhw4f7fFJfRZYsWaKLL75Ys2fPlsfjsdrvvPNO/fHHH3r44YettpSUFA0aNEgXXnihLr30Up166qmaOHGiRo4cWeE1vgzD0EcffaRJkyZp8eLFOu+88+RwOPTaa6/pwIEDkkrCR4/H47MqDgAA1F28fQ8AANSajh076scff9Q///lP/fnnn5o+fbomTpx4RPvcunWroqKiyrVnZWWpYcOG5dr/9a9/KScnx3oL4eDBg63gorR169bpp59+0o8//uhzzSuv16u///3vioyM1Lx58+RwOBQXF6eFCxeqX79+mjx5slavXq3//e9/PvsrDr7KevnllytcASUVBSk33nijIiMj9dBDDykmJsa6r6CgQOPHj1f79u2tvpT13HPPKScnR2+88YbatWtXbnz++OOPcheg3717t6Sicf3999/L7dPtdisqKkrJycnWvl977bVyfS09Xp9++qkeeOABvfTSS5o5c6aeeuop3XLLLcrKytK7776rO+64Qy1btpTX69WLL76o22+/XWeccYbPGD700EM6ePCgrrnmGn388ceaPn26z1snmzdvrjZt2mjDhg269NJLNXr0aM2aNUuXXnqppk6dqnnz5unZZ5/VpEmTdOmll+qll17y+1pmAAAgSEwAAIA6aPny5aakKr9Gjx5d7nEzZ840R40aVe3+b7jhBtPpdJpt2rQx58yZY7WnpKSYvXv3NlNTU8s95ocffjAbNGjgs/89e/aYycnJpiTzq6++8rt/CxcuNMPDw82wsDDz008/LXf/ggULzLi4OPPrr7+udB/XX3+9GR4ebnbp0qXcPr7//nszPDzcjI2NNRs2bOjXV1xcnBkREWH1b+bMmWZsbKyZn59vmqZprlixwhw/frwZHx9vTp061SwoKDCTkpJMh8Nhzpo1yzRN05w6daoZHh5uLlmyxDRN09y3b5+ZnZ1tmqZpnnPOOabD4TDvvPNO0+PxVNinp556yoyMjDQHDBhgejweMy8vz3z44YfNk046yWzZsqX5wgsvWNu+8cYbZps2bcyOHTuaq1atMk3TNJcuXWrGx8ebycnJ5u7du/05FAAAIEgM06zhhRYAAABskJ+fr507d+q4446rcAVSVTweT4Vv7SutsLBQTqezxtdqevPNNzVo0CCfTx984IEH1L17d11wwQV+7ycvL09vvPGGzj77bLVq1arCbbKysnxWT5VVWFiosLCwGo+PvxYuXKilS5dq5syZkoo+CfDkk09Wjx49NGPGDLVs2VIjR47UmDFjdOGFF0oqWjn1n//8R9dff325i6H/9ttvys7O1imnnFLl8/7xxx+KiYmxrg311FNPKTo6WqNGjfLZ56pVq/Txxx/r1ltvta4vJhWtAluxYoVGjhxZK+MAAAACg1AKAAAAAAAAtuNC5wAAAAAAALAdoRQAAAAA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AID6we9Qavbs2erfv7/69++vqKgoGYah119/XZmZmerUqZNmz54tr9er9957T+3atQtkzQAAAAAAAAhxfoVS69ev18MPP6xPP/1U99xzj1wulySpffv2mj9/vj766CM9++yzOvHEE5WSkhLQggEAAAAAABD6qv30PUnq1KmTNm3apPDw8Arv79mzp77//nvNnDlTSUlJtVogAAAAAAAA6h+/375XWSBVLDIyUjfeeKMMwzjiogAAAAAAAFC/+RVKZWdnl2sbOHCgz+3t27fr3HPP1X//+9/aqQwAAAAAAAD1ll+h1FlnnaWhQ4dqyZIlVtuWLVskSatWrdKECRPUpUsXdejQQddee21gKgUAAAAAAEC94dc1pb766iu9+eab+sc//iHTNDV//nzt3LlTTZs2VcuWLXXOOefo5ptv1jXXXKOoqKhA1wwAAAAAAIAQ51coZRiGrrrqKl111VVaunSpWrZsqebNm+vXX39VTEyMJOnpp5/W0KFD9d1336lRo0YBLRoAAAAAAAChrdpQaseOHUpMTFRkZKQkyTRNSVJhYaGaNWtmbWeapvLz83X11Vfrgw8+CFC5AAAAAAAAqA+qDaVatWolj8fj86l6pmmqbdu2+vPPP3223b9/v/Ly8mq/SgAAAAAAANQrfr19r23bttZKqfz8fKWkpOjbb7/VxIkTlZ2dLYej6HrpERERGjt2rFq1ahW4igEAAAAAABDy/Pr0vfz8fL377rt6++23VVBQIElq0aKF3nnnHZ122mk69dRTdeqpp2rr1q2aMmVKQAsGAAAAAABA6Kt2pVRhYaE8Ho86dOggSXI6nUpKSlJsbKx27typMWPGWNvGxcVp+fLlgasWAAAAAAAA9UK1oZTT6dSMGTNUWFgol8ulb7/9Vvn5+crOztaBAwd8th0+fLiGDx8esGIBAAAAAABQP1T79j2Hw6F33nlHM2bMkFS0cmr8+PFq27atjj/+eLVs2VJXXHGF3n33XS5yDgAAAAAAAL9UG0rt2LFDe/bs0cSJEyVJN954oxITExUVFaVjjjlGv/32m84991zNmTNHzZo102233RbwogEAAAAAABDaqn37XqtWrfTxxx9bn7B3ySWX6KKLLrLub9Soka6++mpdffXV2rhxo3bt2hWwYgEAAAAAAFA/+PXpexEREdb3V111lfbs2SPTNCvc7uyzz669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NWLECF1//fX617/+JZfLJUnq27evtm7dGuQKQ9f27dt17rnnWrd/+eUXDRo0SDt37pTL5VKXLl107LHHasOGDTrllFOCWGn9cO655+q3337THXfcoc6dO+uxxx7T6NGjg11WyAoLC5Pb7fZpa9KkiXbs2KGoqCidfvrpMgwjSNXVD6tXr9aQIUOs240aNdKIESN03HHHacuWLTrzzDM1fvx4PfLII0GsMnStWrVK3333nZYuXarevXurbdu2Gj9+vK644gpFRERIEivSjsDOnTt1zDHHWLePP/54GYahNm3aSCqaL/bv3x+k6kLfJ598ottvv11PPPGERowYocjISJ85t0OHDtqxY0cQKwx9/I0RWIxvYDG+wWGYvHIAapXD4VBmZqaio6O1YcMGjRo1SllZWbr99tvVsWNHzZ49Wxs3btTPP/8c7FJD0uWXX67IyEg9+OCDKiws1NixY7Vx40adc845uu222/Tzzz/rpptu0rZt2xQfHx/sckPO3/72N2VmZur999/XFVdcYbUbhqHvv/9ev//+u8455xwtXrw4iFWGrttvv10fffSRZs+erdNPP1179uzRDTfcILfbrcWLFysjI0Px8fHyer3BLjVktW/fXjfffLP1NkiPx6NBgwbptttu0wUXXKAtW7ZowoQJvI26Fng8Hn322Wd65pln9P3332vChAkaM2aMEhMTOYcPU69evRQbG6t3331XcXFxuvvuu/X666+rd+/euuGGG/S///1Pf/75p7788stglxrSPvjgA/3jH//Q+vXrdeedd2rs2LHyer2aPHmyGjZsqFdeeSXYJQLAUYNQ6ihkmib/Ex9ATqdTGRkZio6OllT0ov2FF16wwqgePXpozpw5Ov7444NcaWjav3+/xowZo08++URer1cjRozQCy+8oFtuuUVvv/22GjdurMcee0wXX3xxsEsNSfPnz9e+fft077336umnn650u6uvvtrGquqP3Nxc3XzzzZo3b548Ho8cDocGDRqk5557TomJicrOzlaPHj30xx9/BLvUkPXRRx/pkksuUbdu3XTcccdp9erVio2N1TfffGOtWEXt27p1qx566CG988472rt3L6HUYVq9erUuuugi7dy5U1FRUWrbtq0WL16syZMn69NPP1Xbtm01d+5cJSUlBbvUkGeapl577TX997//1Y8//ihJ6tOnj955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",
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import akshare as ak\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import datetime\n",
    "\n",
    "# ===== 参数 =====\n",
    "symbol = \"Y0\"\n",
    "year_spans = [2, 3, 5, 8, 10, 13]\n",
    "\n",
    "today = datetime.datetime.today()\n",
    "full_start_date = (today - pd.DateOffset(years=max(year_spans))).strftime('%Y%m%d')\n",
    "end_date = today.strftime('%Y%m%d')\n",
    "\n",
    "# ===== 获取数据 =====\n",
    "df = ak.futures_main_sina(symbol=symbol, start_date=full_start_date, end_date=end_date)\n",
    "df[\"日期\"] = pd.to_datetime(df[\"日期\"])\n",
    "df = df.sort_values(\"日期\")\n",
    "\n",
    "# ===== 统计每年周期内的上涨月份次数 =====\n",
    "bar_data = {}\n",
    "\n",
    "for years in year_spans:\n",
    "    cutoff = today - pd.DateOffset(years=years)\n",
    "    df_cut = df[df[\"日期\"] >= cutoff].copy()\n",
    "\n",
    "    df_cut[\"ym\"] = df_cut[\"日期\"].dt.to_period(\"M\")\n",
    "\n",
    "    # 获取每月首日开盘与末日收盘\n",
    "    monthly = df_cut.groupby(\"ym\").agg(\n",
    "        open_price=(\"开盘价\", \"first\"),\n",
    "        close_price=(\"收盘价\", \"last\"),\n",
    "        month=(\"日期\", lambda x: x.iloc[0].month)\n",
    "    )\n",
    "    monthly[\"up\"] = monthly[\"close_price\"] > monthly[\"open_price\"]\n",
    "\n",
    "    # 每月上涨次数\n",
    "    up_counts = monthly.groupby(\"month\")[\"up\"].sum()\n",
    "    total_counts = monthly.groupby(\"month\")[\"up\"].count()\n",
    "    up_counts = up_counts.reindex(range(1, 13), fill_value=0)\n",
    "    total_counts = total_counts.reindex(range(1, 13), fill_value=0)\n",
    "\n",
    "    bar_data[years] = up_counts\n",
    "\n",
    "    total_up = up_counts.sum()\n",
    "    total_months = total_counts.sum()\n",
    "    prob = total_up / total_months if total_months else 0\n",
    "\n",
    "    print(f\"最近 {years} 年上涨月数 / 总月数：{total_up:.0f} / {total_months:.0f} ≈ {prob:.2%}\")\n",
    "\n",
    "# ===== 画图：上涨次数 =====\n",
    "plt.figure(figsize=(12, 6))\n",
    "bar_width = 0.1\n",
    "months = np.arange(1, 13)\n",
    "offsets = np.linspace(-bar_width * len(year_spans) / 2, bar_width * len(year_spans) / 2, len(year_spans))\n",
    "\n",
    "for i, years in enumerate(year_spans):\n",
    "    counts = bar_data[years]\n",
    "    plt.bar(months + offsets[i], counts.values, width=bar_width, label=f\"{years}年\")\n",
    "\n",
    "plt.xticks(months, [f\"{m}月\" for m in months], rotation=-90)\n",
    "plt.xlabel(\"月份\")\n",
    "plt.ylabel(\"上涨次数\")\n",
    "plt.title(f\"{symbol.upper()} 各周期每月上涨次数\")\n",
    "plt.grid(axis='y', linestyle='--', alpha=0.5)\n",
    "plt.legend()\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
